import {ORDER} from "../../const/shopping-order";

export const OrderUtil = {
// 注：（orderStatus，shippingStatus，payStatus）
// 1、待付款订单列表存在状态（1，0，0）待付款
// 2、待收货订单列表存在状态（1，0，2）未发货，（1，3，2）备货中，
// （5，5，2）发货中，（5，1，2）已发货
// 3、待评价列表存在状态（5，2，2）待评价
// 4、其他状态 （orderStatus = 2）取消，（orderStatus = 3）无效，（orderStatus = 4）退货，（6，2，2）已评价

    getOrderStatus (order) {
        const stat = order.orderStatus,
            payStat = order.payStatus,
            shippingStat = order.shippingStatus;

        if(stat == ORDER.orderStat.confirmed) {

            if(shippingStat == ORDER.shippingStat.notShipped) {
                if(payStat == ORDER.payStat.notPay) return '待付款';
                if(payStat == ORDER.payStat.paid) return '未发货';
            }

            if(shippingStat == ORDER.shippingStat.stocking &&
                    payStat == ORDER.payStat.paid) {

                return '备货中';
            }

        }
        else if(stat == ORDER.orderStat.divided && payStat == ORDER.payStat.paid) {
            if(shippingStat == ORDER.shippingStat.shipped) return '已发货';
            if(shippingStat == ORDER.shippingStat.received) return '待评价';
            if(shippingStat == ORDER.shippingStat.shipping) return '发货中';
        }
        else {
            if(stat == ORDER.orderStat.unconfirmed) return '未确认';
            if(stat == ORDER.orderStat.canceled) return '已取消';
            if(stat == ORDER.orderStat.invalid) return '无效';
            if(stat == ORDER.orderStat.refund) return '退货';

            if(stat == ORDER.orderStat.evaluated &&
                    shippingStat == ORDER.shippingStat.received &&
                    payStat == ORDER.payStat.paid) {

                return '已评价';
            }

        }

    },
    showNotPay(order) {
       return order.orderStatus == ORDER.orderStat.confirmed &&
               order.payStatus == ORDER.payStat.notPay;
    },
    showConfirmReceived(order) {
        return  order.orderStatus == ORDER.orderStat.divided &&
                order.payStatus == ORDER.payStat.paid &&
                order.shippingStatus == ORDER.shippingStat.shipped;
    },
    canDelete(order) {
        const stat = order.orderStatus,
            payStat = order.payStatus,
            shippingStat = order.shippingStatus;

        if(stat == ORDER.orderStat.confirmed && payStat == ORDER.payStat.notPay) {
             return false;
        }
        if(payStat == ORDER.payStat.paid && shippingStat != ORDER.shippingStat.received) {
            return false;
        }
        if(stat == ORDER.orderStat.refund) return false;

        return true;
    }
};
